package com.gallop.akka.spec.rpc;

import com.gallop.akka.spec.msg.ActorRequest;
import com.gallop.akka.spec.msg.ActorResponse;

import java.time.Duration;

public class RemoteCallExecutorFactory {

    private RemoteCallExecutorFactory() {

    }

    public static class SyncExecutor implements RemoteCallExecutor {

        @Override
        public <Resp extends ActorResponse<?>> Resp ask(ActorRequest<?> request) {
            return null;
        }

        @Override
        public <Resp extends ActorResponse<?>> Resp ask(ActorRequest<?> request, Duration timeout) {
            return null;
        }
    }

    public static class Cached{

    }

    public static class Broadcast{

    }
}
